La recherche de fichiers sous Linux : comment et avec quel outil ?

par Sandstorm · Publié · Mis à jour

Sous linux, la recherche de fichiers à travers l'arborescence peut se faire via diverses commandes : find, locate, which, whereis, whatis, et apropos. Toutes ne retournent pas forcément les mêmes informations. Je vous propose donc de découvrir ces outils à travers un rapide tour d'horizon de chacun d'eux.

Recherche de fichiers avec la commande FINDRecherche de fichiers avec la commande FIND

Recherche de fichiers avec la commande FIND

 

La commande FIND

La commande find est la plus ancienne. N'utilisant pas de base indexée, elle peut être longue à retourner un résultat. Pour utiliser cette commande, il convient de lui préciser un chemin et un (ou plusieurs) critère(s). Les critères peuvent être :

 

Voici quelques exemples :

find / -name monfichier

find / -user justegeek

find /home/justegeek -atime +5

La dernière commande retournerais les fichiers du dossier /home/justegeek auxquels personne n'a accédé depuis plus de 5 jours.

 

La commande LOCATE

Contrairement à la commande find, la commande locate utilise une base de données. Cela permet d'obtenir un résultat plus rapide. Cette base de données est mise à jour par la cron. Mais il est possible de forcer manuellement la mise à jour de cette base avec la commande suivante :

updatedb

Il existe une version sécurisée de la commande locate, il s'agit de slocate. Cette dernière fonctionne de la même manière que locate mais prend en compte les droits des fichiers. Ainsi, l'utilisateur ne verra dans les résultats que les fichiers auxquels il a accès. Par défaut, locate est bien sûr sensible à la casse, mais si vous souhaitez ignorez la casse dans votre recherche, vous pouvez simplement utiliser le paramètre -i.

 

Voici quelques exemples d'utilisation de la commande locate :

locate fichier.txt

locate -c "*.txt"

La dernière commande retournerais le nombre de fichiers "*.txt" présent sur le système.

Rechercher un fichier avec locateRechercher un fichier avec locate

Rechercher un fichier avec locate

 

La commande WHICH

La commande which sert à localiser l'emplacement d'une commande. Pour cela, elle s'appuie sur la variable PATH. Voici un exemple d'utilisation :

which vi

Cette commande retournera le dossier contenant le binaire vi.

Rechercher un fichier avec whichRechercher un fichier avec which

Rechercher un fichier avec which

 

La commande WHEREIS

La commande whereis fonctionne comme la commande which mais elle recherche en plus dans les pages de manuel ainsi que dans les codes sources.

whereis touch

Rechercher avec whereisRechercher avec whereis

Rechercher avec whereis

 

La commande WHATIS

La commande whatis effectue les mêmes recherches que which, mais elle utilise une base de données. Cette base comprend une courte description des commandes issue des manuels, et permet un résultat plus rapide. Exemple :

whateis pwd

Utilisation de la commande whatisUtilisation de la commande whatis

Utilisation de la commande whatis

Pour créer la base de données on utilise la commande makewhatis.

makewhatis

 

La commande APROPOS

La commande apropos utilise la même base de données que whatis mais donne plus d'informations sur la commande recherchée.

apropos pwd

 

La recherche avec aproposLa recherche avec apropos

La recherche avec apropos

 

Comme évoqué dans le titre de cet article, il s'agit là d'n tour d'horizon rapide. Si vous souhaitez en savoir davantage sur ces différentes commandes, je vous renvoie au manpage de chacune d'entre elle. Cela vous permettra d'avoir une vue complète sur leurs possibilités. 🙂